package org.test.jiazi_1.pojo.dto;

import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.write.style.ColumnWidth;
import cn.idev.excel.annotation.write.style.ContentRowHeight;
import cn.idev.excel.annotation.write.style.HeadRowHeight;
import cn.idev.excel.annotation.write.style.HeadStyle;
import cn.idev.excel.enums.poi.FillPatternTypeEnum;
import cn.idev.excel.enums.poi.HorizontalAlignmentEnum;
import cn.idev.excel.enums.poi.VerticalAlignmentEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
@HeadStyle(
        fillPatternType = FillPatternTypeEnum.THIN_FORWARD_DIAG, // 斜纹填充
        fillBackgroundColor = 9, // 背景色（白色，POI索引色9对应白色）
        horizontalAlignment = HorizontalAlignmentEnum.CENTER, // 水平居中
        verticalAlignment = VerticalAlignmentEnum.CENTER // 垂直居中（新增）
)
@HeadRowHeight(25) // Header row height
@ContentRowHeight(15) // Content row height
@ColumnWidth(15) // Default column width for all fields unless overridden
@Schema(name = "学生课程信息表，包含教师授课及学生基本信息(StudentCourseInfo)实体类")
public class StudentCourseInfoExportDTO implements Serializable {



    /**
     * 教师姓名
     */
//    @HeadStyle(
//            fillPatternType  = FillPatternTypeEnum.THICK_BACKWARD_DIAG,
//            horizontalAlignment = HorizontalAlignmentEnum.CENTER
//    )
    @Schema(description = "教师姓名")
    @ExcelProperty(value = "教师姓名")
    private String teacherName;
    /**
     * 学期，如20251
     */
    @Schema(description = "学期，如20251")
    @ExcelProperty(value = "学期")
    private String term;
    /**
     * 课号，课程唯一标识
     */
    @Schema(description = "课号，课程唯一标识")
    @ExcelProperty(value = "课号")
    private String courseNo;
    /**
     * 年级编号，如41
     */
    @Schema(description = "年级编号，如41")
    @ExcelProperty(value = "年级编号")
    private String gradeId;
    /**
     * 班级编号，如20511001
     */
    @Schema(description = "班级编号，如20511001")
    @ExcelProperty(value = "班级编号")
    private String classNo;
    /**
     * 班级名称，如20511001
     */
    @Schema(description = "班级名称，如20511001")
    @ExcelProperty(value = "班级名称")
    private String className;
    /**
     * 学籍号，2051100101
     */
    @Schema(description = "学籍号，2051100101")
    @ExcelProperty(value = "学籍号")
    private String studentNo;
    /**
     * 民族代码，如汉族为1
     */
    @Schema(description = "民族代码，如汉族为1")
    @ExcelProperty(value = "民族代码")
    private String nationCode;
    /**
     * 学生姓名
     */
    @Schema(description = "姓名")
    @ExcelProperty(value = "姓名")
    private String studentName;
    /**
     * 性别，男1/女2
     */
    @Schema(description = "性别，男1/女2")
    @ExcelProperty(value = "性别")
    private String gender;
    /**
     * 出生日期，格式如2010/01/01
     */
    @Schema(description = "出生日期，格式如2010/01/01")
    @ExcelProperty(value = "出生日期")
    private String birthDate;
    /**
     * 学生来源 450000,身份证前两位+0000
     */
    @Schema(description = "学生来源 450000,身份证前两位+0000")
    @ExcelProperty(value = "学生来源")
    private String studentSource;
    /**
     * 450324000000
     */
    @Schema(description = "身份证450324000000")
    @ExcelProperty(value = "身份证")
    private String idCard;
    /**
     * 家庭住址
     */
    @ColumnWidth(30)
    @Schema(description = "家庭住址")
    @ExcelProperty(value = "家庭住址")
    private String homeAddress;

    @ExcelProperty(value = "身高（米）")
    @Schema(description = "身高（米）")
    private Double height;
    /**
     * 体重（千克）
     */
    @ExcelProperty(value = "体重（千克）")
    @Schema(description = "体重（千克）")
    private Double weight;
    /**
     * 体重评分
     */
    @ExcelProperty(value = "体重评分")
    @Schema(description = "体重评分")
    private Integer weightScore;
    /**
     * 体重等级
     */
    @ExcelProperty(value = "体重等级")
    @Schema(description = "体重等级")
    private String weightLevel;
    /**
     * 肺活量（毫升）
     */
    @ExcelProperty(value = "肺活量（毫升）")
    @Schema(description = "肺活量（毫升）")
    private Integer vitalCapacity;
    /**
     * 肺活量评分
     */
    @ExcelProperty(value = "肺活量评分")
    @Schema(description = "肺活量评分")
    private Integer vitalCapacityScore;
    /**
     * 肺活量等级
     */
    @ExcelProperty(value = "肺活量等级")
    @Schema(description = "肺活量等级")
    private String vitalCapacityLevel;
    /**
     * 50米跑成绩（秒）
     */
    @ExcelProperty(value = "50米跑成绩（秒）")
    @Schema(description = "50米跑成绩（秒）")
    private Double run50m;
    /**
     * 50米跑评分
     */
    @ExcelProperty(value = "50米跑评分")
    @Schema(description = "50米跑评分")
    private Integer run50mScore;
    /**
     * 50米跑等级
     */
    @ExcelProperty(value = "50米跑等级")
    @Schema(description = "50米跑等级")
    private String run50mLevel;
    /**
     * 立定跳远成绩（米）
     */
    @ExcelProperty(value = "立定跳远成绩（米）")
    @Schema(description = "立定跳远成绩（米）")
    private Double longJump;
    /**
     * 立定跳远评分
     */
    @ExcelProperty(value = "立定跳远评分")
    @Schema(description = "立定跳远评分")
    private Integer longJumpScore;
    /**
     * 立定跳远等级
     */
    @ExcelProperty(value = "立定跳远等级")
    @Schema(description = "立定跳远等级")
    private String longJumpLevel;
    /**
     * 坐位体前屈成绩（厘米）
     */
    @ExcelProperty(value = "坐位体前屈成绩（厘米）")
    @Schema(description = "坐位体前屈成绩（厘米）")
    private Double sitAndReach;
    /**
     * 坐位体前屈评分
     */
    @ExcelProperty(value = "坐位体前屈评分")
    @Schema(description = "坐位体前屈评分")
    private Integer sitAndReachScore;
    /**
     * 坐位体前屈等级
     */
    @ExcelProperty(value = "坐位体前屈等级")
    @Schema(description = "坐位体前屈等级")
    private String sitAndReachLevel;
    /**
     * 800米跑成绩（秒）
     */
    @ExcelProperty(value = "800米跑成绩")
    @Schema(description = "800米跑成绩")
    private String run800m;
    /**
     * 800米跑评分
     */
    @ExcelProperty(value = "800米跑评分")
    @Schema(description = "800米跑评分")
    private Integer run800mScore;
    /**
     * 800米跑等级
     */
    @ExcelProperty(value = "800米跑等级")
    @Schema(description = "800米跑等级")
    private String run800mLevel;
    /**
     * 800米跑附加分
     */
    @ExcelProperty(value = "800米跑附加分")
    @Schema(description = "800米跑附加分")
    private Integer run800mBonus;
    /**
     * 1000米跑成绩（秒）
     */
    @ExcelProperty(value = "1000米跑成绩")
    @Schema(description = "1000米跑成绩")
    private String run1000m;
    /**
     * 1000米跑评分
     */
    @ExcelProperty(value = "1000米跑评分")
    @Schema(description = "1000米跑评分")
    private Integer run1000mScore;
    /**
     * 1000米跑等级
     */
    @ExcelProperty(value = "1000米跑等级")
    @Schema(description = "1000米跑等级")
    private String run1000mLevel;
    /**
     * 1000米跑附加分
     */
    @ExcelProperty(value = "1000米跑附加分")
    @Schema(description = "1000米跑附加分")
    private Integer run1000mBonus;
    /**
     * 一分钟仰卧起坐次数
     */
    @ExcelProperty(value = "一分钟仰卧起坐次数")
    @Schema(description = "一分钟仰卧起坐次数")
    private Integer sitUps;
    /**
     * 仰卧起坐评分
     */
    @ExcelProperty(value = "仰卧起坐评分")
    @Schema(description = "仰卧起坐评分")
    private Integer sitUpsScore;
    /**
     * 仰卧起坐等级
     */
    @ExcelProperty(value = "仰卧起坐等级")
    @Schema(description = "仰卧起坐等级")
    private String sitUpsLevel;
    /**
     * 仰卧起坐附加分
     */
    @ExcelProperty(value = "仰卧起坐附加分")
    @Schema(description = "仰卧起坐附加分")
    private Integer sitUpsBonus;
    /**
     * 引体向上次数
     */
    @ExcelProperty(value = "引体向上次数")
    @Schema(description = "引体向上次数")
    private Integer pullUps;
    /**
     * 引体向上评分
     */
    @ExcelProperty(value = "引体向上评分")
    @Schema(description = "引体向上评分")
    private Integer pullUpsScore;
    /**
     * 引体向上等级
     */
    @ExcelProperty(value = "引体向上等级")
    @Schema(description = "引体向上等级")
    private String pullUpsLevel;
    /**
     * 引体向上附加分
     */
    @ExcelProperty(value = "引体向上附加分")
    @Schema(description = "引体向上附加分")
    private Integer pullUpsBonus;
    /**
     * 标准分
     */
    @ExcelProperty(value = "标准分")
    @Schema(description = "标准分")
    private Double standardScore;
    /**
     * 附加分
     */
    @ExcelProperty(value = "附加分")
    @Schema(description = "附加分")
    private Integer bonusScore;
    /**
     * 总分
     */
    @ExcelProperty(value = "总分")
    @Schema(description = "总分")
    private Double totalScore;
    /**
     * 总分等级
     */
    @ExcelProperty(value = "总分等级")
    @Schema(description = "总分等级")
    private String totalLevel;
    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    @Schema(description = "备注")
    private String remark;
}